home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / plaf / basic / BasicToolTipUI.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  4.5 KB  |  141 lines

  1. package javax.swing.plaf.basic;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Dimension;
  5. import java.awt.Font;
  6. import java.awt.FontMetrics;
  7. import java.awt.Graphics;
  8. import java.awt.Insets;
  9. import java.awt.Rectangle;
  10. import java.awt.Toolkit;
  11. import java.beans.PropertyChangeListener;
  12. import javax.swing.JComponent;
  13. import javax.swing.JToolTip;
  14. import javax.swing.LookAndFeel;
  15. import javax.swing.SwingUtilities;
  16. import javax.swing.plaf.ComponentUI;
  17. import javax.swing.plaf.ToolTipUI;
  18. import javax.swing.text.View;
  19.  
  20. public class BasicToolTipUI extends ToolTipUI {
  21.    static BasicToolTipUI sharedInstance = new BasicToolTipUI();
  22.    private PropertyChangeListener propertyChangeListener;
  23.  
  24.    private PropertyChangeListener createPropertyChangeListener(JComponent var1) {
  25.       return new PropertyChangeHandler(this);
  26.    }
  27.  
  28.    public static ComponentUI createUI(JComponent var0) {
  29.       return sharedInstance;
  30.    }
  31.  
  32.    public Dimension getMaximumSize(JComponent var1) {
  33.       Dimension var2 = this.getPreferredSize(var1);
  34.       View var3 = (View)var1.getClientProperty("html");
  35.       if (var3 != null) {
  36.          var2.width = (int)((float)var2.width + (var3.getMaximumSpan(0) - var3.getPreferredSpan(0)));
  37.       }
  38.  
  39.       return var2;
  40.    }
  41.  
  42.    public Dimension getMinimumSize(JComponent var1) {
  43.       Dimension var2 = this.getPreferredSize(var1);
  44.       View var3 = (View)var1.getClientProperty("html");
  45.       if (var3 != null) {
  46.          var2.width = (int)((float)var2.width - (var3.getPreferredSpan(0) - var3.getMinimumSpan(0)));
  47.       }
  48.  
  49.       return var2;
  50.    }
  51.  
  52.    public Dimension getPreferredSize(JComponent var1) {
  53.       Font var2 = ((Component)var1).getFont();
  54.       FontMetrics var3 = Toolkit.getDefaultToolkit().getFontMetrics(var2);
  55.       Insets var4 = var1.getInsets();
  56.       Dimension var5 = new Dimension(var4.left + var4.right, var4.top + var4.bottom);
  57.       String var6 = ((JToolTip)var1).getTipText();
  58.       if (var6 != null && !var6.equals("")) {
  59.          View var7 = var1 != null ? (View)var1.getClientProperty("html") : null;
  60.          if (var7 != null) {
  61.             var5.width += (int)var7.getPreferredSpan(0);
  62.             var5.height += (int)var7.getPreferredSpan(1);
  63.          } else {
  64.             var5.width += SwingUtilities.computeStringWidth(var3, var6) + 6;
  65.             var5.height += var3.getHeight() + 4;
  66.          }
  67.       } else {
  68.          var6 = "";
  69.       }
  70.  
  71.       return var5;
  72.    }
  73.  
  74.    private void installComponents(JComponent var1) {
  75.       BasicHTML.updateRenderer(var1, ((JToolTip)var1).getTipText());
  76.    }
  77.  
  78.    protected void installDefaults(JComponent var1) {
  79.       LookAndFeel.installColorsAndFont(var1, "ToolTip.background", "ToolTip.foreground", "ToolTip.font");
  80.       LookAndFeel.installBorder(var1, "ToolTip.border");
  81.    }
  82.  
  83.    protected void installListeners(JComponent var1) {
  84.       this.propertyChangeListener = this.createPropertyChangeListener(var1);
  85.       var1.addPropertyChangeListener(this.propertyChangeListener);
  86.    }
  87.  
  88.    public void installUI(JComponent var1) {
  89.       this.installDefaults(var1);
  90.       this.installComponents(var1);
  91.       this.installListeners(var1);
  92.    }
  93.  
  94.    public void paint(Graphics var1, JComponent var2) {
  95.       Font var3 = ((Component)var2).getFont();
  96.       FontMetrics var4 = Toolkit.getDefaultToolkit().getFontMetrics(var3);
  97.       Dimension var5 = ((Component)var2).getSize();
  98.       var1.setColor(((Component)var2).getBackground());
  99.       var1.fillRect(0, 0, var5.width, var5.height);
  100.       var1.setColor(((Component)var2).getForeground());
  101.       var1.setFont(var3);
  102.       String var6 = ((JToolTip)var2).getTipText();
  103.       if (var6 == null) {
  104.          var6 = "";
  105.       }
  106.  
  107.       View var7 = (View)var2.getClientProperty("html");
  108.       if (var7 != null) {
  109.          Rectangle var8 = ((Component)var2).getBounds();
  110.          Insets var9 = var2.getInsets();
  111.          var8.x += var9.left;
  112.          var8.y += var9.top;
  113.          var8.width -= var9.left + var9.right;
  114.          var8.height -= var9.top + var9.bottom;
  115.          var7.paint(var1, var8);
  116.       } else {
  117.          var1.drawString(var6, 3, 2 + var4.getAscent());
  118.       }
  119.  
  120.    }
  121.  
  122.    private void uninstallComponents(JComponent var1) {
  123.       BasicHTML.updateRenderer(var1, "");
  124.    }
  125.  
  126.    protected void uninstallDefaults(JComponent var1) {
  127.       LookAndFeel.uninstallBorder(var1);
  128.    }
  129.  
  130.    protected void uninstallListeners(JComponent var1) {
  131.       var1.removePropertyChangeListener(this.propertyChangeListener);
  132.       this.propertyChangeListener = null;
  133.    }
  134.  
  135.    public void uninstallUI(JComponent var1) {
  136.       this.uninstallDefaults(var1);
  137.       this.uninstallComponents(var1);
  138.       this.uninstallListeners(var1);
  139.    }
  140. }
  141.